from django.db import models

# Create your models here.

"""
博客系统的功能:
（1）一个博客可以有多个标签（多对多） 
（2）一个博客可以有多条评论(一对多） 
（3）一个博客只可以有一个类别（多对一）

博客：标题，作者，内容，发布时间，分类（外键），标签（多对多）
标签：标签名
类别：分类名
评论：作者，博客（外键），邮箱，内容，发布时间。
"""

class Tag(models.Model):
    """
    博客标签
    """
    t_name = models.CharField(max_length=16, verbose_name='名称')

    def __str__(self):
        return self.t_name

    def __unicode__(self):
        return self.t_name

    class Meta:
        verbose_name = '标签'
        verbose_name_plural = verbose_name

class Category(models.Model):
    """
    博客分类
    """
    c_name = models.CharField(verbose_name='名称', max_length=30)

    def __str__(self):
        return self.c_name

    def __unicode__(self):
        return self.c_name

    class Meta:
        verbose_name = '类别'
        verbose_name_plural = verbose_name

class Blog(models.Model):
    """
    博客
    """
    title = models.CharField(verbose_name='标题', max_length=32)
    author = models.CharField(verbose_name='作者', max_length=16)
    content = models.TextField(verbose_name='内容')
    pub = models.DateField(verbose_name='发布时间', auto_now_add=True)
    category = models.ForeignKey(Category, verbose_name='分类', on_delete=models.CASCADE)
    tag = models.ManyToManyField(Tag, verbose_name='标签')

    class Meta:
        verbose_name = '博客'
        verbose_name_plural = verbose_name

    def __unicode__(self):
        return self.title

    def __str__(self):
        return self.title


class Comment(models.Model):
    """
    评论
    """
    p_name = models.CharField(verbose_name='称呼', max_length=16)
    blog = models.ForeignKey(Blog, verbose_name='博客', on_delete=models.CASCADE)
    email = models.EmailField(verbose_name='邮箱')
    content = models.CharField(verbose_name='内容', max_length=240)
    pub = models.DateField(verbose_name='发布时间', auto_now_add=True)

    def __str__(self):
        return self.p_name

    def __unicode__(self):
        return self.content

    class Meta:
        verbose_name = '评论'
        verbose_name_plural = '评论'
        ordering = ['-pub']



